Algorithm design and problem-solving
Algorithms
Candidates should be able to:
- Understand the program development life cycle, limited to: analysis, design, coding and testing
Note and guidance
- Including identifying each stage and performing these tasks for each stage:
- analysis: abstraction, decomposition of the problem, identification of the problem and requirements
- design: decomposition, structure diagrams, flowcharts, pseudocode
- coding: writing program code and iterative testing
- testing: testing program code with the use of test data
- Understand that every computer system is made up of sub-systems, which are made up of further sub-systems
- Understand how a problem can be decomposed into its component parts
- Use different methods to design and construct a solution to a problem
Note and guidance
- Including:
- inputs
- processes
- outputs
- storage
- Including:
- structure diagrams
- flowcharts
- pseudocode
- Explain the purpose of a given algorithm
Note and guidance
- Including:
- stating the purpose of an algorithm
- describing the processes involved in an algorithm
- Understand standard methods of solution
Note and guidance
- Limited to:
- linear search
- bubble sort
- totalling
- counting
- finding maximum, minimum and average values
- Understand the need for validation checks to be made on input data and the different types of validation check
- Understand the need for verification checks to be made on input data and the different types of verification check
Note and guidance
- Including:
- range check
- length check
- type check
- presence check
- format check
- check digit
- the purpose of each validation check and writing algorithms to implement each validation check
- Including:
- visual check
- double entry check
- Suggest and apply suitable test data
Note and guidance
- Limited to:
- normal
- abnormal
- extreme
- boundary
- Extreme data is the largest/smallest acceptable value
- Boundary data is the largest/smallest acceptable value and the corresponding smallest/largest rejected value
- Complete a trace table to document a dry-run of an algorithm
Note and guidance
- Including, at each step in an algorithm:
- variables
- outputs
- user prompts
- Identify errors in given algorithms and suggest ways of correcting these errors
Note and guidance
- Asymmetric encryption includes the use of public and private keys
- Write and amend algorithms for given problems or scenarios, using: pseudocode, program code and flowcharts
Note and guidance
- Precision is required when writing algorithms, e.g. x > y is acceptable but x is greater than y is not acceptable
- pseudocode
- flowcharts